package com.ruoyi.manage.organization.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.io.Serializable;
import java.util.List;


/**
 * 订单授信信息对象 oc_order_credit
 *
 * @author ruoyi
 * @date 2025-08-19
 */
@Data
@ApiModel(value="订单授信信息对象", description="订单授信信息")
@TableName("oc_order_credit")
@Builder
public class OcOrderCredit extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "ID")
    private  Long  id;

    /**
     *  创建时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private  Date  createTime;

    /**
     *  编辑时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "编辑时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "编辑时间")
    private  Date  updateTime;

    /**
     *  版本
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "版本")
    @ApiModelProperty(value = "版本")
    private  String  version;

    /**
     *  删除标识
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "删除标识")
    @ApiModelProperty(value = "删除标识")
    private  Long  deleted;

    /**
     *  匹配编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "匹配编号")
    @ApiModelProperty(value = "匹配编号")
    private  String  machNo;

    /**
     *  订单编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "订单编号")
    @ApiModelProperty(value = "订单编号")
    private  String  orderNo;

    /**
     *  授信金额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "授信金额")
    @ApiModelProperty(value = "授信金额")
    private  BigDecimal  creditAmount;

    /**
     *  授信时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "授信时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "授信时间")
    private  Date  creditTime;

    /**
     *  授信利率
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "授信利率")
    @ApiModelProperty(value = "授信利率")
    private  BigDecimal  realRate;

    /**
     *  还款方式
     * 对应字典表： $column.dictTable ，对应字段值：repaymentType ，对应字段名：$column.dictName
     */

    @Dict(dicCode = "repaymentType")
    @Excel(name = "还款方式", dictType="repaymentType")
    @ApiModelProperty(value = "还款方式")
    private  String  paymentType;

    /**
     *  授信期限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "授信期限")
    @ApiModelProperty(value = "授信期限")
    private  Long  creditPeriod;

    /**
     *  备注
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private  String  remark;

    /**
     *  授信状态（1295997657357058069）
     * 对应字典表： $column.dictTable ，对应字段值：creditState ，对应字段名：$column.dictName
     */

    @Dict(dicCode = "creditState")
    @Excel(name = "授信状态", dictType="creditState")
    @ApiModelProperty(value = "授信状态",notes="1=295997657357058069")
    private  String  creditState;

    /**
     *  授信机构id
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "授信机构id")
    @ApiModelProperty(value = "授信机构id")
    private  Long  organizationId;

    /**
     *  授信机构名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "授信机构名称")
    @ApiModelProperty(value = "授信机构名称")
    private  String  organizationName;

    /**
     *  终止理由
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "终止理由")
    @ApiModelProperty(value = "终止理由")
    private  String  refuseReason;

    /**
     *  机构路径
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "机构路径")
    @ApiModelProperty(value = "机构路径")
    private  String  orgPath;
    @TableField(exist = false)
    private List<String> ids;
    @Tolerate
    public OcOrderCredit(){}
}
